<?php

namespace app\index\controller;

use think\Controller;
use think\Session;
use think\Db;

class Base extends Controller
{
    protected $uid          = 0;                // 用户id（session缓存）

    /**
     * 构造方法
     */
    public function __construct()
    {
        parent::__construct();

        Session::get('uid')	== null || $this->uid	= Session::get('uid');

        // 验证是否授权登录中
        if($this->uid<1){

        	// 跳转授权页面
        	$this->redirect(url('index/wauth/getRequest'));				// 正式环境
			// $this->redirect(url('index/wauth/login'));						// 生产环境
        }

        // 微信jdk文件配置
        $this->getWxConfig();

        // 网站配置信息
        $this->webConfig();

        // 已开通站点
        $this->openCity();

    }


    /**
     * 微信配置信息
     * return       timestamp           时间戳
     *              noncestr            生成签名的随机串
     *              signature           签名
     *              appId               appid
     */
    private function getWxConfig()
    {
        $weixin = new Weixin();

        $url = request()->domain() . $this->request->url();
        $js_config = $weixin->js_config($url);

        $this->assign('jsconfig', $js_config);
    }


    /**
     * 网站设置
     * return   sitename        网站名称
     *          domain          网站域名
     *          title           首页标题
     *          kefu_tel        客服电话
     *          copyright       版权信息
     */
    private function webConfig()
    {
        $res =  Db::name('option')->where('option_name', 'web_set')->value('option_value');
        $this->assign('web_config', json_decode($res, true));

        $this->assign('uid',$this->uid);
    }


    /**
     * 已开通站点
     * return   city_name       城市名称
     *          long            经度
     *          lat             纬度
     */
    private function openCity()
    {
        $res = Db::name("dd_open_city")->field('city_name,long,lat')->where('is_show',1)->select();
        $this->assign('city_list',$res);
    }


    /**
     * 获取微信模板消息管理
     * return       add_publish     成功发布行程提醒模板
     *              cancel_publish  取消行程提醒模板
     */
    public function getWxTemplate()
    {
        return $res =  Db::name('option')->where('option_name', 'wx_template')->value('option_value');
    }


}
